<?php
	namespace Qzn\Controller;
	require_once('./View/loginView.php');
	require_once('./Model/loginHandler.php');

	class LoginController {
		
		 /** 
		 * Check if logged in and do stuff accordingly
		  * @return string $html
		 */
		public function DoControll($lh, $lw) {
			$html = "";
			
			if ($lw->TriedToLogin() || !$lh->IsLoggedIn() && $lw->GetCookie($lw->m_usernameCookie)) {
				$errorCode = $lh->DoLogin($lw->TriedToLogin() ? $lw->GetUsername() : $lw->GetCookie($lw->m_usernameCookie), $lw->TriedToLogin() ? $lw->GetPassword() : $lw->GetCookie($lw->m_passwordCookie), $lw, !$lw->TriedToLogin());
				
				if ($errorCode == \Qzn\Model\LoginHandler::EVERYTHING_WENT_BETTER_THEN_EXPECTED) {
					$lw->SuccessfullLogin($lw->TriedToLogin() ? $lw->GetUsername() : $lw->GetCookie($lw->m_usernameCookie), $lw->TriedToLogin() ? $lh->GetTempPassword($lw->GetUserPk()) : $lw->GetCookie($lw->m_passwordCookie));
				} else {
					$lw->FailedLogin();
				}
				$html .= $lw->ErrorHandler($errorCode);
			}
				
			if ($lw->TriedToLogout()) {
				$lh->DoLogOut();
				$lw->SuccessfullLogout($lh);
			}
			
			if ($lw->TriedToReset()) {
				$errorCode = $lh->SetTempPassword($lh->GetForgettUser($lw), $lw);
				if ($errorCode == \Qzn\Model\LoginHandler::USERNAME_DOSNT_EXIST) {
					$html .= $lw->ErrorHandler($errorCode);
				} else {
					$html .= $lw->DoResetSuccessBox($errorCode);
				}
			}
			
			if($lh->IsLoggedIn()) {
				$html .= $lw->DoLogoutBox();
			} else {
				$html .= $lw->DoLoginBox();
				if (\Qzn\View\NavigationView::IsForgetting()) {
					$html .= $lw->DoForgettBox($lh);
				}
			}
			
			return $html;
		}
	}
?>